////1.打印杨辉三角:
//#include<stdio.h>
//int main(){
//    int arr[10][10]={0};
//    int h=0,l=0,i=0;
//    for(h=0;h<10;h++){
//        for(l=0;l<10;l++){
//            if(l==0){
//                arr[h][l]=1;
//            }
//            if(h==l){
//                arr[h][l]=1;
//            }
//            if(h>=2&&l>=1){
//                arr[h][l]=arr[h-1][l-1]+arr[h-1][l];
//            }
//        }
//
//    }
//    for(h=0;h<10;h++){
//        for(l=0;l<=h;l++){//记住是<=，别忘了最外层
//            printf("%d ",arr[h][l]);//加空格
//        }
//        printf("\n");//换行
//    }
//    return 0;
//}
//打印不是单向的



////2.杨氏矩阵:矩阵的每行从左到右递增,每列从上到下递增,要在矩阵中查找某个数是否存在(也可以再尝试写出该数的行数和列数
//#include<stdio.h>
//int FindX(int arr[3][3],int k,int* l,int* r){
//    int x=0,y=*r-1;
//    while(x<=*l-1 && y>=0){
//        if(arr[x][y]>k){
//            y--;
//        }
//        else if(arr[x][y]<k){
//            x++;
//        }
//        else{
//            *l=x;
//            *r=y;//这步是求被查数的行列的
//            return 1;
//        }
//    }
//    return 0;
//}
//int main(){
//    int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
//    int k=7,l=3,r=3;
//    int ret=FindX(arr,k,&l,&r);//返回型参数,可传值可接收值
//    if(ret==1){
//        printf("Yes %d %d",l,r);
//    }
//    else{
//        printf("No");
//    }
//    return 0;
//}






////杨氏矩阵(傻瓜版
//#include<stdio.h>
//int FindX(int arr[3][3],int k,int row,int col){
//    int i=0;
//    for(;i<row;i++){
//        if(arr[i][0]==k){
//            return 1;
//        }
//        else if(arr[i][1]==k){
//            return 1;
//        }
//        else if(arr[i][2]==k){
//            return 1;
//        }
//    }
//    return 0;
//}
//int main(){
//    int arr[3][3]={{1,2,3},{3,4,5},{5,6,7}};
//    int k=5;
//    int ret=FindX(arr,k,3,3);
//    if(ret==1){
//        printf("Yes");
//    }
//    else{
//        printf("No");
//    }
//    return 0;
//}




////杨氏矩阵,遍历法:
//#include<stdio.h>
//int FindX(int arr[3][3],int k,int row,int col){
//    int i=0;
//    for(i=0;i<row;i++){
//        int j=0;
//        for(j=0;j<col;j++){
//            if(arr[i][j]==k){
//                return 1;
//            }
//        }
//    }
//    return 0;
//}
//int main(){
//    int arr[3][3]={{1,2,3},{3,4,5},{5,6,7}};
//    int k=5;
//    int ret=FindX(arr,k,3,3);
//    if(ret==1){
//        printf("Yes");
//    }
//    else{
//        printf("No");
//    }
//    return 0;
//}




//打印图案（牛客):
//#include<stdio.h>
//int main(){
//    int l=3;
//    int i=0;
//    for(i=0;i<l;i++){
//        int j=0;
//        for(j=0;j<l;j++){
//            int n=i;
//            while(i==j&&i!=0){
//                if(n--){
//                    printf(" ");
//                }
//                else{
//                    break;
//                }
//            }
//        }
//        printf("v");
//        int k=0;
//        for(k=l-1;k>=0;k--){
//            int m=2*k-1;
//            while(k+i==2&&m>0){
//                printf(" ");
//                m--;
//            }
//        }
//        if(i<l-1){
//            printf("v\n");
//        }
//    }
//    return 0;
//}





////3.输入一个字符和一个数字，组成由该字符组成的该数字行数的金字塔（模型在桌面-暂存-文件里）:
//#include<stdio.h>
//int main(){
//    char a='1';
//    int n=5,n1=1;
//    scanf("%c %d",&a,&n);
//    while(n--){
//        int an=1+(n1-1)*2;//这里必须放在循环内，以免其成为常量
//        int i=0;
//        for(i=n;i>0;i--){//是n不是n-1，因为n--已经将n-1了
//            printf(" ");
//        }
//        int j=0,k=-1;
//        for(j=1;j<=k+2;j++){
//            if(j%2==1){
//                printf("%c",a);
//            }
//            else{
//                printf(" ");
//            }
//            if(j==k+2&&j<an){//当j++到k+2时，这时候的需要++，这时候是一次循环的结束，也是另一次的开始
//                k+=2;
//            }
//        }
//        n1++;
//        printf("\n");
//    }
//    return 0;
//}